package org.com.lvtpo.servlets;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import beans.BeanCliente;
import beans.BeanCotizacionRodamiento;
import controlador.AccesoRemoto;

public class ConfirmarCotizacionServlet extends HttpServlet{

	
	private static final long serialVersionUID = 1L;

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		
		BeanCliente beanCliente = (BeanCliente) req.getSession().getAttribute("BEANCLIENTECOTIZACION");
		List<BeanCotizacionRodamiento> cotizaciones = new ArrayList<BeanCotizacionRodamiento>();
		cotizaciones = AccesoRemoto.getInstancia().levantarCotizaciones(beanCliente.getCuit());
		req.getSession().setAttribute("COTIZACIONESPENDIENTES", cotizaciones);
		
		RequestDispatcher rd = getServletContext().getRequestDispatcher("/jsp/confirmarCotizacion.jsp");
		rd.forward(req, resp);
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		
		

		String opcion = "";
		
		if(req.getParameter("opcion")!=null){
			opcion = req.getParameter("opcion");
			req.removeAttribute("opcion");
		}
		
		if(opcion.equalsIgnoreCase("mostrar")){
			List<BeanCotizacionRodamiento> cotizaciones  =  (List<BeanCotizacionRodamiento>) req.getSession().getAttribute("COTIZACIONESPENDIENTES");
			Integer idCotizacion = Integer.parseInt(req.getParameter("idCotizacion"));
			for(BeanCotizacionRodamiento beanCotizacionRodamiento : cotizaciones){
				if(beanCotizacionRodamiento.getId() == idCotizacion)
					req.getSession().setAttribute("COTIZACIONELEGIDA", beanCotizacionRodamiento);
			}
			RequestDispatcher rd = getServletContext().getRequestDispatcher("/jsp/confirmarCotizacion.jsp");
			rd.forward(req, resp);
			
		}else if(opcion.equalsIgnoreCase("generarFactura")){
			BeanCotizacionRodamiento beanCotizacionRodamiento =  (BeanCotizacionRodamiento)req.getSession().getAttribute("COTIZACIONELEGIDA");
			
			boolean generarFactura = AccesoRemoto.getInstancia().generarFactura(beanCotizacionRodamiento);
			
			if(generarFactura){
				req.setAttribute("MENSAJE", "La factura se ha generado exitosamente");
				req.getSession().removeAttribute("COTIZACIONELEGIDA");
			}
			else
				req.setAttribute("MENSAJE", "Ha habido un error al generar la factura. Contacte al administrador");
			
			RequestDispatcher rd = getServletContext().getRequestDispatcher("/jsp/generarFactura.jsp");
			rd.forward(req, resp);
			
		}else{
			req.getSession().removeAttribute("COTIZACIONELEGIDA");
			BeanCliente beanCliente = (BeanCliente) req.getSession().getAttribute("BEANCLIENTECOTIZACION");
			List<BeanCotizacionRodamiento> cotizaciones = new ArrayList<BeanCotizacionRodamiento>();
			cotizaciones = AccesoRemoto.getInstancia().levantarCotizaciones(beanCliente.getCuit());
			req.getSession().setAttribute("COTIZACIONESPENDIENTES", cotizaciones);
			RequestDispatcher rd = getServletContext().getRequestDispatcher("/jsp/confirmarCotizacion.jsp");
			rd.forward(req, resp);
		}
	}
	
	
	

}
